home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / namespace.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  855b  |  43 lines

  1. #ifndef _NAMESPACE_H_
  2. #define _NAMESPACE_H_
  3. #ifdef __KERNEL__
  4.  
  5. #include <linux/mount.h>
  6. #include <linux/sched.h>
  7.  
  8. struct namespace {
  9.     atomic_t        count;
  10.     struct vfsmount *    root;
  11.     struct list_head    list;
  12.     struct rw_semaphore    sem;
  13. };
  14.  
  15. extern void umount_tree(struct vfsmount *);
  16. extern int copy_namespace(int, struct task_struct *);
  17. extern void __put_namespace(struct namespace *namespace);
  18.  
  19. static inline void put_namespace(struct namespace *namespace)
  20. {
  21.     if (atomic_dec_and_test(&namespace->count))
  22.         __put_namespace(namespace);
  23. }
  24.  
  25. static inline void exit_namespace(struct task_struct *p)
  26. {
  27.     struct namespace *namespace = p->namespace;
  28.     if (namespace) {
  29.         task_lock(p);
  30.         p->namespace = NULL;
  31.         task_unlock(p);
  32.         put_namespace(namespace);
  33.     }
  34. }
  35.  
  36. static inline void get_namespace(struct namespace *namespace)
  37. {
  38.     atomic_inc(&namespace->count);
  39. }
  40.  
  41. #endif
  42. #endif
  43.